package cn.com.cifi.mars.web.action.report;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import cn.com.cifi.mars.common.bean.R;
import cn.com.cifi.mars.common.constants.VersionConstant;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

@Api(tags = "供货计划报表API")
@RequestMapping("/${spring.data.rest.base-path}/{apiVersion}/report")
public interface ISupplyReportController {

	@ApiOperation(value = "刷新供货对比报表数据", notes = "刷新供货对比报表数据")
    @GetMapping(value = "initSupplyCompareReport")
    public R initSupplyCompareReport(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
            @ApiParam(value = "月份（具体某一月）(yyyy-MM)", required = false) @RequestParam(name = "yearMonth",required = false) String yearMonth);

	
    @ApiOperation(value = "查询供货对比报表", notes = "查询供货对比报表")
    @GetMapping(value = "supplyCompareReport")
    public R supplyCompareReport(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "截止时间(yyyy-MM)", required = false) @RequestParam(name = "deadline",required = false) String deadline);

    
    @ApiOperation(value = "导出供货对比报表", notes = "导出供货对比报表")
    @GetMapping(value = "supplyCompareReportExport")
    public void supplyCompareReportExport(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "截止时间(yyyy-MM)", required = false) @RequestParam(name = "deadline",required = false) String deadline,
			HttpServletResponse httpServletResponse);

    
    @ApiOperation(value = "刷新月度供货明细表", notes = "刷新月度供货明细表")
    @GetMapping(value = "initSupplyMonthlyDetailReport")
    public R initSupplyMonthlyDetailReport(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
            @ApiParam(value = "月份（具体某月数据）", required = false) @RequestParam(name = "yearMonth",required = false) String yearMonth,
            @ApiParam(value = "项目ID", required = false) @RequestParam(name = "projectId",required = false) String projectId);

    
    @ApiOperation(value = "查询月度供货明细表", notes = "查询月度供货明细表")
    @GetMapping(value = "supplyMonthlyDetailReport")
    public R supplyMonthlyDetailReport(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
            @ApiParam(value = "截止时间(yyyy-MM)", required = false) @RequestParam(name = "deadline",required = false) String deadline);

    
    @ApiOperation(value = "导出月度供货明细表", notes = "导出月度供货明细表")
    @GetMapping(value = "supplyMonthlyDetailReportExport")
    public void supplyMonthlyDetailReportExport(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "截止时间(yyyy-MM)", required = false) @RequestParam(name = "deadline",required = false) String deadline,
			HttpServletResponse httpServletResponse);
    
    @ApiOperation(value = "投资版数据处理", notes = "投资版数据处理")
    @GetMapping(value = "handleInvestment")
    public R handleInvestment( @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "版本ID", required = false) @RequestParam(name = "versionId",required = false) String versionId);

    @ApiOperation(value = "获取项目父级", notes = "获取项目父级")
    @GetMapping(value = "projectParentLevel")
    public R projectParentLevel( @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "项目ID", required = false) @RequestParam(name = "projectId",required = false) String projectId);

    
    @ApiOperation(value = "刷新供货确认表", notes = "刷新供货确认表")
    @GetMapping(value = "initSupplyConfirmReport")
    public R initSupplyConfirmReport(
            @ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
            @ApiParam(value = "月份（具体某月数据）", required = false) @RequestParam(name = "yearMonth",required = false) String yearMonth,
            @ApiParam(value = "项目ID", required = false) @RequestParam(name = "projectId",required = false) String projectId);

}
